package com.binance.notification.web.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.binance.notification.api.response.WebSDKInitParamsResponse;

import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;

public interface IDeviceService {

    public Set<String> languageTags() throws APIConnectionException, APIRequestException;

    public Map<String, Object> aliasTags(String registrationId) throws APIConnectionException, APIRequestException;

    public Map<String, Object> setAliasAndTags(String registrationId, String alias, List<String> tagsToAdd,
            List<String> tagsToRemove) throws APIConnectionException, APIRequestException;

    /**
     * 获取鉴权信息
     *
     * @return
     * @throws Exception
     */
    public WebSDKInitParamsResponse getWebSDKInitParams(String userStr);


    public void setLanguage(String registrationId, String language) throws APIConnectionException, APIRequestException;

    public List<String> getAliasDeviceList(String alias, String platform)
            throws APIConnectionException, APIRequestException;

    public Long countUidsByTagAndPlatform(String tag, String platform);

    public List<String> getUidListByAliasAndPlatform(String alias, String platform);
}
